#ifndef _HDL_GPIO_H_
#define _HDL_GPIO_H_

#include "app_header.h"

typedef enum _hdl_gpio_type_typedef
{
    GPIO_IN     = 0,
    GPIO_OUT    = 1,
}HDL_GPIO_TYPE_TYPEDEF;

typedef enum _hdl_gpio_typedef
{
    GPIO_LOW,
    GPIO_HIGH,
}HDL_GPIO_TYPEDEF;

typedef enum _gpio_interrupt_mode
{
    kGPIO_NoIntmode = 0U, 				/* 无中断功能 */
    kGPIO_IntLowLevel = 1U, 			/* 低电平触发	*/
    kGPIO_IntHighLevel = 2U, 			/* 高电平触发 */
    kGPIO_IntRisingEdge = 3U, 			/* 上升沿触发	*/
    kGPIO_IntFallingEdge = 4U, 			/* 下降沿触发 */
    kGPIO_IntRisingOrFallingEdge = 5U, 	/* 上升沿和下降沿都触发 */
} gpio_interrupt_mode_t;	

typedef struct _gpio_pin_struct
{
    HDL_GPIO_TYPE_TYPEDEF direction;
	gpio_interrupt_mode_t interruptMode;	/* 中断方式 */
    uint8_t          output;
}hdl_gpio_StructInit;

extern struct hal_gpio_if g_hdl_gpio_if;

#endif
